Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[Pytanie] C++ vs java ?


Rekomendowane odpowiedzi

Opublikowano

Mam zapał do tego, a jaki język jest prostrzy c++ czy java, chyba że są jeszczę inne znane języki??? I jak tworzy się grę w np. C++ to jak dodaję się grafiki, ogólnie wygląd, np. taki gothic czy robi się go np. w unity 3d robi się modele i dodaję skrypty czy można też normalnie kodem pisać, ale nie ogarniam jak to będzie wyglądało jak tylko piszemy?? Proszę bez zbędnych komentarzy

Opublikowano

Bielu. Pod jakim względem (oprócz wieloplatformowości) Java jest lepsza. Słucham. Bo raczej na pewno nie pod względem szybkości i pamięciożerności.

 

Odpowiedziałem ci, ale zrobię to jeszcze raz. Wszystko zależy gdzie programujesz. Unity = C#. Jak chcesz pisać linijka po linijce to szukasz silnika w C++ i klepiesz.

 

UNITY = C#...

846331404756772371599.jpeg
Opublikowano

A jak w c++ napisać chociażby grę tetris? Chodzi o to jak grafikę dodać ?, bo w takim np. Unity 3d to ogarniam że skrypty ale nie mam pojęcia jak za pomocą samego kodu c++, czy jak to się tam robi???

Opublikowano

Myślenie o game-dev'ie w kategoriach wykorzystywanego języka programowania przypomina zastanawianie się nad profilem rączki młotka, za pomocą którego chcielibyśmy zbudować dom. To detal implementacyjny bez większego znaczenia. Jeśli umiesz trzymać jedną rączkę młotka to umiesz trzymać każdy rodzaj cholernego młotka.

 

Szerszej odpowiedzi doknałem w twoim drugim wątku ;/ Trochę żałuję.

 

 

@EDIT
@Phoenix

Tak, dlatego Minecraft jest okropnym potworkiem, niechcianym dzieckiem o którym nikt nie słyszał i nikt nigdy nie zagrał.

Ta sygnatura jest pusta.

Opublikowano

I ja dodam coś od siebie, jeśli można.

Osobiście zaczynałem od Javy i pisało się całkiem przyjemnie. Java jest całkiem łatwa i uczy programowania obiektowego, ale fakt, wydajna nie jest.

Jeżeli chcesz pisać gry, jak większość osób, które zaczynają programować, to ucz się C++. Oczywiście, jeżeli chcesz robić gry w stylu Assassin's Creed czy Gothic.

Na Androida pisze się w Javie a na iOS w Objective-C.

Musisz solidnie opanować podstawy, a dopiero potem możesz się brać za grafikę.

Do 2D polecam SFML, a do 3D OpenGL, ewt. DirectX, jeżeli chcesz pisać wyłącznie na platformy M$.

Podstawy C/C++:

http://cpp0x.pl/
@edit

Unity, UDK i CryEngine(+LUA) są napisane w C++.

Opublikowano

Aggresion, ale minecraft to minecraft, pracowała nad nim spora grupa ludzi naprawdę znających się na javie i mających pomysł na grę (i głównie pomysł zadecydował o sukcesie). Gdyby MC było napisane w cpp, pewnie byłoby troszkę wydajniejsze, ale dużej różnicy nie zauważymy bo kod powinien zostać zoptymalizowany przez tą grupę programistów.

 

Dodaj ewentualnie jeszcze coś od siebie i koniec offtopu.

846331404756772371599.jpeg
Opublikowano

 

A jezeli chodzi o program unity 3d, udk czy cryengine 3 to jakiego się języka używa,???

C# tak myślę.

Dbmy4Vg.png?1

Opublikowano

Ehh. Człowieku!

Każdy język jest dobry, jeżeli umiesz go wykorzystać. Możesz nawet pisać w LOLCODE, ale nie o to chodzi.

Wybierz język, który jest najbardziej pożądany na rynku np. C++, Java, C#, a będziesz miał zapewnioną pracę.

Nie ważne, w którym będziesz się uczył programować. Ważne żebyś poznał ogólne zasady i konwencje, a będziesz umiał programować we wszystkim, no prawie.

Tu masz dobrą odpowiedź:

http://gynvael.coldwind.pl/?id=238
Opublikowano

JavaScript jest językiem SKRYPTOWYM a nie kompilowanym! Daje ci to taką przewagę, że nie musisz mieć specjalnego środowiska programistycznego lecz zwykły edytor tekstu jeśli chcesz dokonać zmian w kodzie. Języki skryptowe stosuję się przy gotowych silnikach żeby w łatwy sposób oskryptować dany obiekt.

2mmtzeu.jpg

Opublikowano

@ Up na taką odp czekałem, nareszcie rozjaśniło mi to umysł + dla ciebie. I mam takie pytanko czy da się zrobić grę typu farcry za pomocą c++ tzn. kodu i jak takie coś wygląda

Opublikowano

FarCry został zrobiony w CryEngine. Gry tego typu możesz zrobić w silniku graficznym (Unity3d, CryEngine, Frostbite, UnrealEngine). Jeśli dobrze zrozumiałem twoje pytanie to chcesz napisać takową grę w c++ bez użycia gotowego silnika, nie rozumiem tylko po co komplikować sobie sprawę i od nowa pisać coś co masz już zrobione. W końcu i tak twoja gra będzie spełniała takie same zadanie jak taki silnik (renderowanie oraz aktualizowanie).

2mmtzeu.jpg

Opublikowano

ktos tam zaczal porownywac jave do javascriptu, rownie dobrze mozna porownac krzeslo do krzesla elektrycznego lub inzyniera do inzyniera informatyki - znany cytat

 

co do jezyka, hmm, c/c++ jest wydajniejsze od javy, o co wam chodzi? java ciagnie ram jak chuj za przeproszeniem, najmniejsza glupota i masz juz 200 mb ramu, tak znikad, bo sie jej podoba, ja zaczalem nauke od C++, potem elementy C, potem C# (C# =/= C/C++), perl jest tez ciekawy, js tez. Ucz sie tego, co Ci sie podoba, co Ci latwo wchodzi do glowy, albo krokami. Ja probowalem sie nauczyc assemblera na sile i sie nie udalo, ale gdy czytalem cos np w szkole, gdy mi sie nudzilo, w autobusie etc, to szybciej mi wchodzil, bo go mialem gdzies tak naprawde, moze nie znam go na tyle zaawansowanie aby reversowac komfortowo programy, ale na tyle by napisac cos prostego :D

no witam

Opublikowano

C jest o 10 do 25% szybszy od C++, dlatego jest o wiele częściej używany do tworzenia systemów i bazowego oprogramowania. Do gier natomiast lepszy jest C++ ze względu na ogrom bibliotek i ułatwienie obiektowości poprzez zastosowanie klas i szablonów. Jeżeli tak bardzo chcesz robić gry, to nie skacz na głęboką wodę, bo nie dasz rady dopłynąć do lądu. Zacznij od podstaw C lub C++ (jedni uważają, że dobrze jest się nauczyć C przed C++, a inni nie). Tutaj masz dobry kurs:

http://cpp0x.pl/
Potem możesz uczyć się grafiki 2D(np. SFML), bo dzięki temu łatwiej ogarniesz 3D(np. OpenGL)

 

@up Gynvael Coldwind ma dobre poradniki Assembly

http://gynvael.coldwind.pl/?id=445
Opublikowano

C jest o 10 do 25% szybszy od C++

Jakieś dowody?

 

A propos jeszcze C i C++. Uczenie się C przed C++ nie ma sensu, bo C ma bardzo wąski zakres zastosowań, biorąc pod uwagę, że tam gdzie nie jest konieczny używa się zamiast niego C++. Jak ktoś się nauczy C++ to praktycznie zero problemów, żeby przesiąść się na C w jakichś ekstremalnych przypadkach.

 

A java nie ma przeciążenia operatorów, skopane generyki, brak wskaźników, narzuca obiektowość, wyłącznie dynamiczna alokacja pamięci, brak domyślnych argumentów metod. I GC, dość subiektywnie. Dla mnie jest wadą.

 

i taki kod napisany w C++

void x(int& a) {++x;}...int a; x(a);
będzie niepotrzebnie skompilowany w javie.
Opublikowano

@Sopelek997 Rozmawiałem z kilkoma zawodowcami, którzy potwierdzają różnice wydajności tych języków. M. in. z tego względu systemy są tworzone w C a nie C++.

Weźmy np. klasy: Zajmują dużo miejsca, a można je zastąpić strukturami.

Napisz system oparty na C++ na klasach, a napisz go w C na strukturach, a zobaczysz różnicę wydajności. W zależności od maszyny będzie to różnica od 5% do 15%. (Fakt z tymi 10-25% przesadziłem i się przyznaję.)

 

Wracając do tematu.

Wybierz C++, jeżeli chcesz robić gry na PC (Windows/Linux/Mac), aplikacje okienkowe np. w QT czy cokolwiek wykonywalnego, C# dla aplikacji internetowych i Unity3D, PHP/Javascript dla stron internetowych, Java dla Androida, Objective-C dla iOS i C dla mikro kontrolerów, systemów operacyjnych i aplikacji niskopoziomowych.

Opublikowano

M. in. z tego względu systemy są tworzone w C a nie C++.

Właśnie nie z tego powodu.

cytat

 

You pick C when

you need portable assembler (which is what C is, really) for whatever reason,

your platform doesn't provide C++ (a C compiler is much easier to implement),

you need to interact with other languages that can only interact with C (usually the lowest common denominator on any platform) and your code consists of little more than the interface, not making it worth to lay a C interface over C++ code,

you hack in an Open Source project (many of which, for various reasons, stick to C), *moj dopisek* - bo C jest prostszy i prawie każdy ogarnie

you don't know C++.

Weźmy np. klasy: Zajmują dużo miejsca, a można je zastąpić strukturami.

Wiesz, że klasa w C++ to to samo co struktura tylko ma domyślnie wszystkie składowe prywatne (struktura publiczne)? Będzie zajmować tyle ile jej każesz.

 

Napisz system oparty na C++ na klasach, a napisz go w C na strukturach, a zobaczysz różnicę wydajności.

Nie zobaczę, bo to jest to samo***.

 

*** takp, to samo

 

w C void func(jakisStructTypedef* x) {do something}

w C++ class jakasKlasa {func() {do something}};

 

po kompilacji (wywołanie takiej metody/funkcji) to jest to samo.

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...